package cn.itcast.web.controller.stat;

import cn.itcast.service.stat.StatService;
import cn.itcast.web.controller.BaseController;
import com.alibaba.dubbo.config.annotation.Reference;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/stat")
public class StatController extends BaseController {

    @Reference
    private StatService statService;

    /**
     * 作用：进入对应的统计页面
     * url:/stat/toCharts.do
     * 参数：ChartsType=factory
     * 返回：对应报表页面
     */
    @RequestMapping("/toCharts")
    public String toCharts(String chartsType){
        return "stat/stat-"+chartsType;
    }

    /**
     * 作用：提供厂家销售情况的数据
     * url:/stat/getFactoryData
     * 返回：厂家的销售数据。json格式
     */
    @RequestMapping("/getFactoryData")
    @ResponseBody
    public List<Map<String,Object>>getFactoryData(String chartsType){
        return statService.getFactoryData(getLoginCompanyId());
    }

      /*
       作用： 获取产品销售的前五名数据
       url: /stat/getSellData
       返回： 获取产品销售的前五名数据，json格式。
    */
    @RequestMapping("/getSellData")
    @ResponseBody
    public List<Map<String,Object>>getSellData(String chartsType){
        return statService.getSellData(getLoginCompanyId());
    }

    @RequestMapping("/getOnLineData")
    @ResponseBody
    public List<Map<String,Object>>getOnLineData(String chartsType){
        return statService.getOnLineData(getLoginCompanyId());
    }

    /**
     * 厂家区域统计
     * url:/stat/getAddressData.do
     * 返回厂家的区域信息
     */
    @RequestMapping("/getAddressData")
    @ResponseBody
    public List<Map<String,Object>>getAddressData(String chartsType){
        return statService.getAddressCount(getLoginCompanyId());
    }
}
